/**
 * \class ExpressionType.h /GenProg/AbsSyn/ExpressionType.h
 *
 *  \date 25 maj 2012
 *  \author ytc0039
 *  
 *  \brief Expression type Enum class
 *
 *  Holds all the expressions that is available in the system
 */

#ifndef EXPRESSIONTYPE_H_
#define EXPRESSIONTYPE_H_
#include <Interfaces/Enumeration.h>

/**
 * \brief Expression types
 *
 * The registry is using this to be able to map
 * expression generation objects to certain types.
 *
 *
 *
 */
class ExpressionType:public Enumeration<ExpressionType>{
public:
	ExpressionType(const char* image);

	const static ExpressionType BOOL_EXP;
	const static ExpressionType INT_EXP;
	const static ExpressionType DOUBLE_EXP;
	const static ExpressionType ADD_EXP;
	const static ExpressionType IDENT_EXP;
	const static ExpressionType MOD_EXP;

	static ExpressionType genConstantType();


};

#endif /* EXPRESSIONTYPE_H_ */
